package com.pureut.storage.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pureut.storage.domain.AllotManagement;
import com.pureut.storage.dto.AllotManagementDto;
import com.pureut.storage.dto.AndroidHandoverPdaDto;
import com.pureut.storage.dto.AndroidPdaDto;
import com.pureut.storage.export.AllotManagementExport;
import com.pureut.storage.vo.AllotManagementVo;
import com.pureut.storage.vo.AllotPdaListVo;
import com.sale.common.mybatis.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 调拨管理 Mapper
 */
@Mapper
public interface AllotManagementMapper extends BaseMapperPlus<AllotManagementMapper,AllotManagement,AllotManagement> {

    /**
     * 调拨单列表
     */
    Page<AllotManagementDto> selecAllottList(@Param("page")Page<AllotManagementDto> page,@Param("allotManagementVo") AllotManagementVo allotManagementVo);

    /**
     * 调拨单交接列表
     * @param deptId
     * @return
     */
    List<AndroidHandoverPdaDto> getAndroidHandoverList(Long deptId);

    /**
     * 调拨单交接详情
     * @param id
     * @return
     */
    AndroidHandoverPdaDto getAndroidHandoverView(Long id);

    /**
     * 调拨出库Pda列表
     * @param page
     * @param allotPdaListVo
     * @return
     */
    Page<AndroidPdaDto> getPdaList(@Param("page")Page<AndroidPdaDto> page,@Param("allotPdaListVo") AllotPdaListVo allotPdaListVo);

    /**
     * 调拨单入库Pda列表
     * @param page
     * @param allotPdaListVo
     * @return
     */
    Page<AndroidPdaDto> getPdaList1(@Param("page")Page<AndroidPdaDto> page ,@Param("allotPdaListVo") AllotPdaListVo allotPdaListVo);

    /**
     * 调拨单Pda拣货撤销列表
     * @param page
     * @param allotPdaListVo
     * @return
     */
    Page<AndroidPdaDto> getPdaList3(@Param("page")Page<AndroidPdaDto> page,@Param("allotPdaListVo") AllotPdaListVo allotPdaListVo);

    /**
     * 调拨单Pda出库详情
     * @param allotPdaListVo
     * @return
     */
    AndroidPdaDto getPdaListView(AllotPdaListVo allotPdaListVo);

    /**
     * 调拨单Pda入库详情
     * @param allotPdaListVo
     * @return
     */
    AndroidPdaDto getPdaListView1(AllotPdaListVo allotPdaListVo);

    /**
     * 导出调拨单
     * @param allotManagementVo
     * @return
     */
    List<AllotManagementExport> getInfoExport(AllotManagementVo allotManagementVo);

    /**
     * 根据id获取详情
     */
    AllotManagementDto selectAllotById(Long id);

    /**
     * 查询仓库单据数据（结账反结账使用）
     */
    List<AllotManagementDto> getRClosingDocument(String time);

    /**
     * 调拨交接列表
     * @param deptId
     * @param page
     * @return
     */
    Page<AndroidHandoverPdaDto> getHandoverList(@Param("deptId") Long deptId,@Param("page") Page<AndroidHandoverPdaDto> page);
}
